// 数据库的增,删,改,查基本操作

// -----------------------------
// 模拟数据库对象
// const db = require('../index')
// const mdb = db.dbconnect('127.0.0.1','root','b214820417','nodetest')
// -----------------------------

/*
查询数据-----------------------------------------------------------------------------------------------
*
*
*/

/**
 * 查询表中所有数据
 * @param {database} database -数据库对象
 * @param {string} datasheet -数据表
 * @returns {res} 查询结果
 */
const datafind = (database,datasheet) => {
    return new Promise((resolve, reject) => {
        const sql = `select * from ${datasheet}`;
        database.query(sql, (err, res) => {
            if (err) {
                console.log(err.message);
                reject(err);
            } else {
                // console.log(res);
                resolve(res);
            }
        });
    });
}

/**
 * 带过滤条件的查询
 * @param {database} database -数据库对象
 * @param {string} datasheet -数据表
 * @param {string} filtercondition -过滤条件
 * @returns {res} 查询结果
 */
const datafindfilter = (database,datasheet,filtercondition) => {
    return new Promise((resolve, reject) => {
        const sql = `select * from ${datasheet} where ${filtercondition}`
        database.query(sql, (err, res) => {
            if (err) {
                console.log(err.message);
                reject(err);
            } else {
                // console.log(res);
                resolve(res);
            }
        });
    });
}

/*
删除数据-----------------------------------------------------------------------------------------------
*
*
*/

/**
 * 删除数据
 * @param {database} database -数据库对象
 * @param {string} datasheet -数据表
 * @param {string} filtercondition -过滤条件
 * @returns {res} 删除结果
 */
const datadeletefilter = (database,datasheet,filtercondition) => {
    return new Promise((resolve, reject) => {
        const sql = `delete from ${datasheet} where ${filtercondition}`
        database.query(sql, (err, res) => {
            if (err) {
                console.log(err.message);
                reject(err);
            } else {
                // console.log(res);
                res.message = "删除成功!"
                resolve(res);
            }
        });
    });
}

/*
增加数据-----------------------------------------------------------------------------------------------
*
*
*/

/**
 * 增加数据
 * @param {database} database -数据库对象
 * @param {string} datasheet -数据表
 * @param {object} incomingdata -添加的数据对象
 * @returns {res} 增加结果
 */
const dataadd = (database,datasheet,incomingdata) => {
    return new Promise((resolve, reject) => {
        const sql = `insert into ${datasheet} set ?`
        database.query(sql, incomingdata,(err, res) => {
            if (err) {
                console.log(err.message);
                reject(err);
            } else {
                // console.log(res);
                res.message = "添加成功!"
                resolve(res);
            }
        });
    });
}

/*
修改数据-----------------------------------------------------------------------------------------------
*
*
*/

/**
 * 修改数据
 * @param {database} database -数据库对象
 * @param {string} datasheet -数据表
 * @param {object} updatedata -修改的数据对象
 * @param {string} filtercondition -过滤条件
 * @returns {res} 修改结果
 */
const dataupdate = (database,datasheet,updatedata,filtercondition) => {
    return new Promise((resolve, reject) => {
        const sql = `update ${datasheet} set ? where ${filtercondition}`
        database.query(sql,updatedata,(err, res) => {
            if (err) {
                console.log(err.message);
                reject(err);
            } else {
                // console.log(res);
                res.message = "修改成功!"
                resolve(res);
            }
        });
    });
}


module.exports = {
    // 查询
    datafind,
    datafindfilter,
    // 删除
    datadeletefilter,
    // 添加
    dataadd,
    // 修改
    dataupdate
}